package com.sip.interphone.common;

import org.apache.commons.lang3.StringUtils;
import org.springframework.util.CollectionUtils;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @Author zc
 * @Description TODO
 * @Date 2024/1/17 10:07
 * @Version 1.0
 */
public class Commons {

    public static void main(String[] args) {
        String a = "1,2,3,4,";
        System.out.println(a.substring(0, a.length()));
        System.out.println(a.substring(0, a.length() - 1));
    }

    /**
     * 动火方式
     * [ dhfs ] 添加值域范围[ 1,2,3,4,5,6,7,8,9 ] ，添加定义[1:电焊;2:气焊;3:气割;4:电钻;5:冲击钻;6:砂轮;7:喷砂机;8:金弧焊;9:其它;(可多选)]
     */
    public static Map<String, String> dhfsMap() {
        Map<String, String> map = new HashMap<>();
        map.put("电焊", "1");
        map.put("气焊", "2");
        map.put("气割", "3");
        map.put("电钻", "4");
        map.put("冲击钻", "5");
        map.put("砂轮", "6");
        map.put("喷砂机", "7");
        map.put("金弧焊", "8");
        map.put("其它", "9");
        return map;
    }

    /**
     * 风险辨识  添加值域范围[ 01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20 ]
     * 调整定义(01: 物体打击;02: 机械伤害:03: 车辆伤害:04: 起重伤害:05: 高处坠落;06:中毒和室息:07: 触电:08: 淹溺:09:灼烫;10: 火灾;11: 塌:12:透水;13: 放炮:14:
     * 冒顶片帮:15:火药爆炸:16: 瓦斯爆炸:17: 锅炉爆炸;18: 容器爆炸;19: 其他爆炸;20: 其他;(可多选)]
     *
     * @return
     */
    public static Map<String, String> fxbxMap() {
        Map<String, String> map = new HashMap<>();
        map.put("物体打击", "01");
        map.put("机械伤害", "02");
        map.put("车辆伤害", "03");
        map.put("起重伤害", "04");
        map.put("高处坠落", "05");
        map.put("中毒和室息", "06");
        map.put("触电", "07");
        map.put("淹溺", "08");
        map.put("灼烫", "09");
        map.put("火灾", "10");
        map.put("塌", "11");
        map.put("透水", "12");
        map.put("放炮", "13");
        map.put("冒顶片帮", "14");
        map.put("火药爆炸", "15");
        map.put("瓦斯爆炸", "16");
        map.put("锅炉爆炸", "17");
        map.put("容器爆炸", "18");
        map.put("其他爆炸", "19");
        map.put("其他", "20");
        return map;
    }

    /**
     * 根据名称获取对应数值
     *
     * @param dataStr 名称字符串
     * @param split   名称字符分隔符
     * @param map     名称对应的数值集合
     * @param otherNo 其他对应的编码
     * @return
     */
    public static String calc(String dataStr, String split, Map<String, String> map,String otherNo) {
        String newStr = "";
        if (StringUtils.isEmpty(dataStr)) {
            return "--";
        }
        String[] datas = dataStr.split(split);
        for (String item : datas) {
            String tempNo = "0";
            for (String key : map.keySet()) {
                if (item.contains(key)) {
                    tempNo = map.get(key);
                    break;
                }
            }
            if (Integer.valueOf(tempNo) > 0) {
                newStr += tempNo + ",";
            } else {
                newStr += otherNo+",";
            }
        }
        if (StringUtils.isEmpty(newStr)) {
            newStr = otherNo;
        } else {// 保证“其他”只出现一次
            if (newStr.indexOf(","+otherNo) > 0) {
                newStr = newStr.replace(","+otherNo, "");
                if (!newStr.contains(otherNo)) {
                    newStr += otherNo;
                }
            }
        }
        return newStr;
    }


    /**
     * 判断火种残留情况 （验收通过：为1；其他可不传或者--）
     *
     * @param statusStr
     * @return
     */
    public static String caclHZWCLGK(String statusStr) {
        if (StringUtils.isEmpty(statusStr)) {
            return "--";
        }
        if (statusStr.contains("验收通过")) {
            return "1";
        }
        return "--";
    }

}
